package com.fruit.service.rights;

import com.fruit.pojo.goods.RightConfig;
import com.fruit.pojo.rights.UserGoodsRights;
import com.fruit.pojo.rights.UserGoodsRightsHarvest;
import com.fruit.pojo.rights.UserGoodsRightsPost;

import java.util.List;
import java.util.Map;

/**
 * 
 * @ClassName: UserRightsManager
 * @author 葛欢欢
 * @version 2017.11.30 16:40
 */
public interface UserRightsManager {
	/**
	 * 获取用户权益信息
	 *
	 * @param pam
	 *            pam
	 * @return List<UserGoodsRights>
	 */
	List<UserGoodsRights> userTrees(Map<String, Object> pam);
	
	/**
	 * 通过期次规格ID获取权益信息
	 * @param pam  
	 * @return 返回权益列表
	 */
	List<UserGoodsRights> getRightsByGstId(Map<String, Object> pam);

	/**
	 * 查询分类下面的所有的商品
	 * 
	 * @param pam
	 *            pam
	 * @return List<RightConfig>
	 */
	List<RightConfig> getGoodsRightList(Map<String, Object> pam);

	/**
	 * 查询用户权益详情
	 *
	 * @param id
	 *            权益ID
	 * @return UserGoodsRights
	 */
	UserGoodsRights getUserGoodsRight(int id);

	/**
	 * 创建用户权益
	 *
	 * @param goodsRights
	 *            goodsRights
	 * @param tokenId
	 *            tokenId
	 * @return Map<String, Object>
	 */
	Map<String, Object> insertGoodsRight(List<UserGoodsRights> goodsRights, String tokenId);

	/**
	 * 查找用户树苗每年的收益
	 *
	 * @param id
	 *            权益ID
	 * @return List<UserGoodsRightsHarvest>
	 */
	List<UserGoodsRightsHarvest> findUserGoodsRightsHarvest(int id);

	/**
	 * 权益详情 树的对话
	 *
	 * @param type
	 *            权益ID
	 * @return List<UserGoodsRightsPost>          
	 */
	List<UserGoodsRightsPost> findUserGoodsRightsPost(String type);

	/**
	 * 查询每个大类的统计百分比
	 * @param userId userId
	 * @return List<RightConfig>
	 */
	List<RightConfig> getClassPercentage(int userId);

	/**
	 * 查询用户权益总数
	 * 
	 * @param userId userId
	 * @return int
	 */
	int getRightNum(int userId);
	
	/**
	 * 根据orderGoodsid查询 权益详情
	* @author 葛欢欢
	* @version 2017.11.30 16:40 
	* @param orderGoodsId
	* @return
	 */
	UserGoodsRights getRightByOrderGoodsId(int orderGoodsId);
	
	/**
	 * wap查询所有的根分类
	 * @return List<RightConfig>
	 */
	List<RightConfig> getWapClassId();
	
	
}
